Graphic designers want tools that enable them to quickly and easily modify shapes. Within graphic design applications, these shapes are often modeled using curve representations that are defined by a sequence of control points, where the position of each control point has some influence on the shape of the curve. Examples of such shape representations include Bézier curves, B-splines, non-uniform rational B-splines (NURBS), and subdivision curves, among others. Graphic design applications typically allow the designer to edit a shape by moving one or more control points until the desired shape is achieved. Because several control points may need to be moved by different amounts in different directions to achieve the desired result, it can be tedious to edit a shape in this manner. Applications often provide a more convenient means of curve editing in which the designer can click on any point on the curve and drag it to a new location—a method often referred to as “direct manipulation,” since the designer deals directly with the curve rather than with its control points. Curve editing methods that support direct manipulation must solve an equation or a series of equations to determine new locations for the curve's control points that will force the curve to pass through the point that the designer specified.
In an ideal world, a designer could click on any point on the curve and “pull” it, and the curve would follow in an intuitive manner. Unfortunately, reality does not always meet expectations. For instance, some applications that permit direct manipulation of open-ended curves display unpredictable results when the designer attempts to drag a point on the curve that is close to one of the curve endpoints. Sometimes a small movement by the designer results in an inordinately large change in the curve. In extreme cases, the edited curve may include unwanted loops, or a change may unexpectedly invert the curve. It would be helpful if graphics applications provided an intuitive, simple, and fast way for a designer to achieve the desired curve without encountering these unpredictable anomalies.